Method and system for analytic based connections among user types in an online platform

ABSTRACT

Introduced here are various embodiments for selectively assigning a query to an expert. A network-accessible server system may receive a query from a client device indicating a question or project proposal. The query text may be parsed and attributes of the query may be determined by inspecting the parsed query text. The query attributes may be compared with attributes associated with a pool of experts with various specialties and expertise in various fields. The network-accessible server system may match the query attributes with attributes associated with a first expert with a similarity that exceeds a threshold similarity level to identify that an expertise of the first expert matches the requested expertise in the query. The first expert may be assigned to the query and prompted to provide a response to the query.

CROSS-REFERENCES TO RELATED APPLICATIONS

This application claims priority to U.S. Provisional Patent ApplicationNo. 62/615,343, titled “METHOD AND SYSTEM FOR ANALYTIC BASED CONNECTIONSAMONG USER TYPES IN AN ONLINE PLATFORM,” and filed on Jan. 9, 2018,which is hereby incorporated by reference in its entirety.

TECHNICAL FIELD

The present application is related to online platforms and, morespecifically, to a method and system for selectively assigning a queryto an expert over a networked environment based on identified attributesof the query.

BACKGROUND

Prior to the advent and prolific use of distributed network environmentssuch as the Internet, a person looking for an expert in a particularfield would review a static directory (e.g., a telephone directory). Astatic directory does not account for changes in information relating toa user or an expert.

With the advent of distributed networks, social platforms now enableusers to connect based on static user information typically entered by auser. Static information employed for connections is often out-to-dateresulting in inaccurate or incorrect connection recommendations. Inaddition, many social platforms include privacy settings that limit auser's ability to identify another user with particular expertiseindicated on a profile.

BRIEF DESCRIPTION OF THE DRAWINGS

Various features and characteristics of the technology will become moreapparent to those skilled in the art from a study of the DetailedDescription in conjunction with the drawings. Embodiments of thetechnology are illustrated by way of example and not limitation in thedrawings, in which like references may indicate similar elements.

FIG. 1 depicts an illustration of a system to selectively distribute aquery to an expert, consistent with various embodiments.

FIG. 2 illustrates a flow process to selectively distribute a query toan expert, consistent with various embodiments

FIG. 3 depicts an illustration of an attribute graph, consistent withvarious embodiments.

FIG. 4 illustrates a flow process for selectively distributing a queryand an event, consistent with various embodiments.

FIG. 5 illustrates a flow process for selectively distributing a promptto provide an opinion on a first event, consistent with variousembodiments.

FIG. 6 is a block diagram illustrating an example of a processing systemin which at least some operations described herein can be implemented.

The drawings depict various embodiments for the purpose of illustrationonly. Those skilled in the art will recognize that alternativeembodiments may be employed without departing from the principles of thetechnology. Accordingly, while specific embodiments are shown in thedrawings, the technology is amenable to various modifications.

DETAILED DESCRIPTION

In many cases, individuals would like to learn more about a givensubject. As an example, for illustrative purposes, an individual maywant to learn more about policies relating to renewable energy (solarpower, wind power, etc.) in Europe. To find such information, theindividual may conduct research (e.g., read books, read newspapers,speak with another individual, etc.).

In some instances, an individual may attempt to identify an expert toanswer a question or prepare a report on a topic. Experts may possess aparticular expertise or specialty in various fields. For example, anexpert can have an expertise in Chinese linguistics, or a specializationin European policies relating to renewable energy.

An individual may identify an expert in a field using various methods.For example, an individual may use a phonebook to find an expert. Insome cases, an individual may identify an expert by searching forexperts and other relevant information over a networked environment(e.g., the internet).

However, identifying experts in specialized fields may be computationalresource-intensive. For example, an individual may interact with manyindividuals over a networked environment that have insufficientknowledge on the relevant field of specialization. Further, computingdevices may exhaust a great amount of computation resources in searchingthird-party platforms for relevant information on potential experts andtransmitting information in the networked environment that may lead toinefficient operations of computers in a networked environment.

In many cases, to understand more about a topic and/or to performresearch on a topic (e.g., policies relating to renewable energy (solarpower, wind power, etc.) in Europe), an individual may refer toinformation over the internet. For example, an individual may accessblog posts, scholarly articles, news articles, online discussions,social media posts, etc., relating to a question. For example, a newsarticle may outline a new solar power policy enacted in a Europeancountry. Such information accessed by an individual may be static (i.e.,a blog post is written and posted once without further updating of theblog post).

However, due to various circumstances (e.g., time, change of laws,inaccurate information provided, etc.), the static information maybecome inaccurate or out of date. For example, a social media postrecommending a restaurant in a city may be inaccurate if the restaurantgoes out of business after the posting of the social media post. Inaddition, many social platforms include privacy settings that limit aindividual's ability to identify another individual with particularexpertise indicated on a profile.

Accordingly, techniques to selectively distribute a query is disclosed.A client may transmit a query (or “question”) to a network-accessibleserver system. An example of a query may be “What are linguisticdifferences across regions in Italy?” The network-accessible serversystem may identify the nature of the query and assign keywords (or“query attributes”) to the query. In the example above, query attributesmay include “linguistic,” “differences,” “regions,” “Italy,” etc. Thenetwork-accessible server system may identify an expert with aspecialization in a relevant field to handle the query by matching thequery attributes with specialties (or “expert attributes”) of theexpert. In the present example, the network-accessible server system mayassign the query to a first expert with specialties in Italianlinguistics and accents. In some embodiments, the first expert may beprompted to respond to or provide an opinion on an event (e.g., abreaking news article) relating to the query. Based on assigning thequery to the expert, the expert may answer the query for the client orprovide their expert opinion on the relevant topic.

The present disclosure may include determine attributes of a queryidentifying the meaning of the query, determine attributes of expertsrelating to their specialty, and determine attributes of events (e.g.,news articles, blog posts, etc.) to identify the meaning of the event.Based on a determinization that there is a threshold similarity betweenthe attributes of the query and the attributes of an expert, thenetwork-accessible server system may selectively assign the query to theexpert for the expert to provide an accurate response/opinion based onthe query. This may improve the functionality of the computer network,as the network-accessible server system may increase computationalefficiency by selecting an expert for a query with greater accuracybased on previously determined attributes of the expert. This may lessenthe chances of the network-accessible server system assigning the queryto multiple, less accurate, experts to handle the query.

Terminology

References in this description to “an embodiment” or “one embodiment”means that the particular feature, function, structure, orcharacteristic being described is included in at least one embodiment.Occurrences of such phrases do not necessarily refer to the sameembodiment, nor are they necessarily referring to alternativeembodiments that are mutually exclusive of one another.

Unless the context clearly requires otherwise, the words “comprise” and“comprising” are to be construed in an inclusive sense rather than anexclusive or exhaustive sense (i.e., in the sense of “including but notlimited to”). The terms “connected,” “coupled,” or any variant thereofis intended to include any connection or coupling between two or moreelements, either direct or indirect. The coupling/connection can bephysical, logical, or a combination thereof. For example, devices may beelectrically or communicatively coupled to one another despite notsharing a physical connection.

The term “based on” is also to be construed in an inclusive sense ratherthan an exclusive or exhaustive sense. Thus, unless otherwise noted, theterm “based on” is intended to mean “based at least in part on.”

The term “module” refers broadly to software components, hardwarecomponents, and/or firmware components. Modules are typically functionalcomponents that can generate useful data or other output(s) based onspecified input(s). A module may be self-contained. A computer programmay include one or more modules. Thus, a computer program may includemultiple modules responsible for completing different tasks or a singlemodule responsible for completing all tasks.

When used in reference to a list of multiple items, the word “or” isintended to cover all of the following interpretations: any of the itemsin the list, all of the items in the list, and any combination of itemsin the list.

The sequences of steps performed in any of the processes described hereare exemplary. However, unless contrary to physical possibility, thesteps may be performed in various sequences and combinations. Forexample, steps could be added to, or removed from, the processesdescribed here. Similarly, steps could be replaced or reordered. Thus,descriptions of any processes are intended to be open-ended.

System Overview

FIG. 1 depicts an illustration of a system to selectively distribute aquery to an expert, consistent with various embodiments. The system 100may include a pool of client devices 102 that includes multipleelectronic devices (e.g., mobile phone 104A, laptop computer 104B,desktop computer 104C), where each electronic device is associated witha client. A client, via a client device (e.g., desktop computer 104C)may transmit a query (e.g., “request to generate a recent history ofpolicies relating to renewable energy (solar power, wind power, etc.) inEurope, etc.) to a network-accessible server system 106.

A network-accessible server system (or “online platform”) 106 mayreceive a query (e.g., questions, project proposals, etc.,) from clientdevices 104A-C included in the pool of client devices 102. Upon receiptof a query from a client device (e.g., laptop computer 104B), thenetwork-accessible server system 106 may parse and analyze the query todetermine the meaning/nature of the query using a language processingmodule 108.

The language processing module 108 may identify text (words, phrases,etc.) based on content included in the query. The language processingmodule can use natural language processing (NLP) to identify text and/orparse the query to build a parse tree using a probabilistic context-freegrammar and employing lexical semantics to derive a meaning of thequery. In other words, the language processing module 108 can parseidentified text in the query using a parse tree to identify keywordsthat identify the nature of the query. For example, if a query is for“restaurant suggestions in Australia,” the language processing modulecan identify and understand the meaning of the words “restaurant,” and“Australia.”

Based on the text identified in the query, an attribute module 110 mayidentify attributes of the query. Attributes may include keywords,codewords, features, phrases, etc., that indicate an attribute of thequery text. For example, the attribute module 110 may identify the words“Australia,” and “restaurant,” where the attribute module 110 maydetermine that the query relates to an expert opinion on restaurants inAustralia

The attribute module 110 may identify various keywords representing theexpertise (or “attributes”) of an expert. The pool of expert devices 120may include 122A-C that each are associated with an expert. As anexample, attributes associated with a Chinese linguistics expertassociated with mobile phone 122A may include expert attributes such as“China,” and “Language.”

The network-accessible server system 106 may identify a first expert bycomparing query attributes and the attributes of the expert(s). Forexample, if a query includes attributes relating to “Europe,” “renewableenergy,” and “policy,” a European renewable energy policy expert withidentified attributes of “Europe,” “renewable energy,” and “policy” maybe the first expert identified. In some embodiments, this determinationmay include inspecting an attribute node graph (discussed in FIG. 3) todetermine a similarity (or “closeness”) between the identified event andthe pool of experts.

Using the attributes of the query identified by the attribute module110, the network-accessible server system may identify an event (e.g.,report of a natural disaster, a new law passed by a government, theopening of a restaurant, etc.) using an event module 112. The eventmodule 112 may access and search (or “mine”) third-party platforms 140(e.g., social media pages, blog posts, news organization websites,scholarly articles, etc.) to identify an event in real-time. Forexample, the event module 112 may identify a newly-passed policy in aEuropean country relating to wind power regulation from a newsorganization posting a bulletin about the policy.

In some embodiments, the event module 112 may determine a relevancyscore for each identified event. A relevancy score may include adetermination of the relevancy of an event identified by anetwork-accessible source. The relevancy score may be based on variousfactors, such as the impact on relevant individuals, the impact oneconomic interests, the impact on rights of individuals, etc. Forexample, an event indicating a natural disaster impacting millions ofindividuals in a populated country may receive a greater relevancy scorethan an event indicating a cancellation of a local sporting event due tothe natural disaster's greater impact on a larger number of individuals.In an embodiment, the relevancy score may be compared against athreshold level to determine whether the event is considered a majorevent (e.g., an event with widespread impact).

As an example, each event identified can be given a relevancy score of anumber between 0 and 100. Furthering this example, using variousfactors, an event indicating a major natural disaster may be given arelevancy score of 85, which indicates widespread impact among a largenumber of individuals. If a predetermined threshold level is 65, therelevancy score (85) exceeds the threshold level (65). Accordingly, inthis example, the event identified may be considered a major event. Insome cases, the language processing module 108 may parse and analyze allmajor events to discern keywords and text from the event. Based on thekeywords identified, the attribute module 110 may identify attributesassociated with the major event.

With attributes identified for an event and attributes identified for aquery, the network-accessible server system 106 may identify an expertwith an expertise similar to the identified attributes. Thenetwork-accessible server system 106 may communicate with a pool ofexpert devices 120 (e.g., mobile phone 122A, laptop computer 122B,desktop computer 122C) associated with an expert. For example, a Chineselinguistics expert may be associated with mobile phone 122A, anAustralian travel expert may be associated with laptop 122B, and aEuropean renewable energy policy expert may be associated with desktopcomputer 122C.

The network-accessible server system 106 can generate a prompt to anexpert identified based on similar attributes between the expert and theevent. A prompt may include a request for the expert to provide anopinion of an event (e.g., press release of a new law), respond to aquery, generate a project, etc.

In an embodiment, the network-accessible server system 106 may include atopic association module 114 to predict a topic of interest of anindividual (e.g., clients) based on data received from client device(s)104A-C. For example, the topic association module 114 can extract clientdata from a calendar entry, an email, a text message, a detectedlocation, etc. from a client device (e.g., mobile phone 104A) todetermine potential topics of interest of the client. In an example, thetopic association module 114 may identify a potential interest of alocation (e.g., Australia) based on emails and calendar entriesindicating a future trip to Australia. In an embodiment, if a majorevent associated with the location is identified during a time in whichthe client is in that location, for example, a notification can beautomatically generated and sent to the client indicating of the majorevent.

Based on an identified expert receiving a prompt and responding to theprompt, the response may be transmitted to the appropriate client devicein the pool of client devices 102. For example, a response to a querymay be transmitted to a device (e.g., laptop computer 104B) thattransmitted the query.

A quality control module 116 can review the responses provided byexpert(s) and rate the responses. The responses can be rated based oncharacteristics of the response, such as grammar, accuracy, responsetime, etc. In an embedment, each expert may have an associated expertrating indicating an average rating of all responses provided. Thequality control module 116 may filter responses provided by experts sothat only responses with a rating above a threshold level aretransmitted to a client device. For example, if a response is given arating below the threshold level, the quality control module 116 maygenerate a notification indicative of the deficiency for the expert thatgenerated the response. If the response receives a rating above thethreshold, the quality control module 116 can provide the response toany relevant client device(s) 104A-C.

In some embodiments, data validation and attribute rules can be used toflag responses received from experts to ensure clarity and accuracy ofresponses. These rules can include analyzing, for example, spelling,grammar, keyword matches, tonal characteristics, etc. Spelling analysiscan automatically correct misspelled words based off a mismatch againsta dictionary library file. Grammar analysis can involve identifyingincorrect and/or awkward grammatical usage within response field.Keyword match analysis can involve examining a response from an expertfor particular keywords (e.g., keywords associated with a broaderkeyword library and/or parse tree derived from the query). A threshold(i.e. 30%) can be used to determine whether the expert is addressing thesubject for which the client has provided a query. Tonal characteristicsanalysis involves collecting data from a plurality of query transactionsto determine if a response includes characteristics that will likelyreceive higher or more favorable client ratings. Examiningcharacteristics of responses in a response library that have a ratingenables an additional validation of characteristics of a currentlysubmitted response. A threshold characteristic correspondence isdetermined to flag a particular response that is not likely to receive apositive client rating.

Suggestions can be automatically generated for an expert based on thetonal analysis. Suggestions indicative of characteristics of highlyrated responses are generated in real time and provided to an expert inresponse to determining that a response from the expert falls below athreshold characteristic correspondence. The automated suggestions canguide experts on characteristics that result in highly rated responses.

In an embodiment, manual quality control can be implemented in lieu ofor in addition to automated quality control. For example, manual qualitycontrol can be implemented to review responses flagged by the automatedquality control system. If a submitted answer does not exceed athreshold based on the validation rules of the automated quality controlsystem, the response can be added to a manual review queue. The qualitycontrol module 116 can enable a manual reviewer to select a discardoption to cause the response to be discarded or to select a revisionoption to cause the response to be sent to the originating expert forrevision and eventual resubmittal. Special cases may exist where thecontent of the response is deemed to be high quality but lackingclarity. The quality control module 116 can enable a manual reviewer toselect an editor review option to cause the response to be delivered toan editor to improve clarity.

In an embodiment, responses can be randomly or quasi-randomly reviewed.For example, on a periodic basis, a sample of responses can be randomlypulled from the system and reviewed. The random review can verify thatautomated attribute-specific and validation rules are workingappropriately. Random review can also be used to identify any trends orunique events that may warrant further investigation.

FIG. 2 illustrates a flow process 200 to selectively distribute a queryto an expert, consistent with various embodiments. A network-accessibleserver system may receive a query from a client device (block 202). Thenetwork-accessible server system can receive multiple queries fromvarious client devices, where each query may represent a question or aproject proposal for a relevant expert.

The network-accessible server system can determine text from the query(block 204). In other words, the network-accessible server system canparse the query to identify characters in the query and analyze theidentified characters to determine text. Identifying text can includeutilizing a text recognition technique, such as Optical CharacterRecognition (OCR), for example. The query can be parsed into text byimplementing natural language processing to identify text. For example,the network-accessible server system can determine that a received queryincludes the following text: “What has been the impact of recentpolicies relating to renewable energies in Europe?”

Based on the determined text of the query, the network-accessible serversystem may identify attributes of the query (or “query attributes”)(block 206). Query attributes may include keywords or features of thequery text that can identify the nature or meaning of the query. Forexample, with the query “What has been the impact of recent policiesrelating to renewable energies in Europe,” the network-accessible serversystem may identify “Policies,” “renewable energies,” and “Europe,” asthe primary keywords that give meaning to the query. In someembodiments, the network-accessible server system may utilize a parsetree to parse the text and utilize the parse tree to determine relevancyof the query text to determine the primary keywords that may includequery attributes.

In some embodiments, the network-accessible server system may access aclient profile associated with a client. A client profile may include aset of data representing information relating to the client, such asclient contact information, client professional information, previousqueries provided by the client, etc. In an embodiment, thenetwork-accessible server system may update a client profile to includequery attributes of a query transmitted by a client device associatedwith a client. In other words, if a client logged into a client devicetransmits a query, the identified query attributes may be included inthe client profile. Based on the attributes associated with a clientprofile, relevant events and event reports generated by thenetwork-accessible server system may be forwarded to the client profileif attributes of the event match any attributes included in the clientprofile.

The network-accessible server system may identify a first expert basedon determining that the query attributes match attributes of the firstexpert (block 208). The network-accessible server system may access apool of experts, where each expert has individual specialties or fieldsof expertise. Each expert may have associated attributes that representtheir field(s) of specialty. For example, if the first expert is aRenewable Energy expert for European countries, attributes of the firstexpert may include “Renewable Energies,” “Europe,” etc.

Matching the attributes of expert(s) with the query attributes mayinclude determining a similarity between these attributes. In someembodiments, this matching may be determined by an attribute graph, asshown in FIG. 3. The network-accessible server system may compare theattributes of each expert (e.g., first expert) against the queryattributes to determine whether the similarity exceeds a thresholdsimilarity level. A threshold similarity level may include apredetermined threshold or minimum amount of similarity to determinethat expert attributes match the query attributes. In an embodiment,attributes can be plotted on a Cartesian coordinate system (i.e. x,yplot), and a Euclidean distance function can be used to determine how“close” or “similar” each expert attribute to an attribute of the query.

Using each of the distance calculations, in combination with theirweights, a combined “score” may be calculated which indicates an overallmatch metric between a query attribute and an attribute of an expert. Acombined score can be derived from the sum of the Euclidean distances(e.g., for each of the experts' attributes relative to the client)multiplied by the weight assigned to that attribute. The combined scorecan be based on historical data from completed connections to increaseweight of attributes more relevant to determining similarity. Actualobservations (i.e. completed connections) can be analyzed by performinga distance calculation using techniques such as, for example, k-NearestNeighbors (k-NN). A rank order of a number of matching experts (e.g.,the top 10 or 15 experts) can be generated based on the match metric.The ranked order of matching experts can be provided to a client for theclient to select any of the experts included in the rank order list.

In some embodiments, a plurality of experts (e.g., a first expert and asecond expert) may have attributes that match the query attributes withthe threshold level of similarity. In this event, an expert (e.g., firstexpert) may be assigned the query based on a factor (e.g., average timeto complete a task, expert rating, workload, etc.). In an embodiment,the client device associated with the client that transmitted the querymay receive a listing of all relevant experts (i.e. experts withattributes that match the query attributes). The listing may includeinformation about all relevant experts, such as contact information,expert location, expert education, expert experience, etc. Based on thislisting, the client device may transmit a communication to thenetwork-accessible server system indicating a selected expert.

Based on determining that attributes of the first expert match the queryattributes with a similarity that exceeds a threshold similarity level,the query may be assigned to the first expert (block 210). Assigning thequery may include prompting the expert to provide a response to thequery. For example, for a query of “What has been the impact of recentpolicies relating to renewable energies in Europe,” the first expert mayrespond to this query by providing relevant policies and a summation ofthe overall impact of these policies, as this query is within thespecialty of the first expert. In some embodiments, the query mayinclude a request to generate a project or report on a topic, and thefirst expert may respond to such a query by providing a project orreport on the topic.

The network-accessible server system may forward a response to the queryto a client device associated with a client (block 212). The responsemay be forwarded to the client device that originally transmitted thequery to the network-accessible server system. In some embodiments, theresponse may be forwarded to all client devices that transmitted querieswith a query attribute similar to an attribute of the response. Forexample, if a response to a query includes a summation of travellocations in Australia, all client devices that submitted queriesrelating to travelling in Australia may receive the response generatedby the expert.

FIG. 3 depicts an illustration of an attribute graph 300, consistentwith various embodiments. An attribute graph 300 may include a graphicalrepresentation of attributes of the query and attributes of a pool ofexperts to determining whether attributes of an expert are similar to anattribute of a query and/or an event. In this representation, the closerin proximity an expert attribute (e.g., expert 1 attribute 1 344) is toa query attribute (e.g., query attribute 1 342), the more similar theexpert attribute is to the query attribute.

In an example, the query is “What has been the impact of recent policiesrelating to renewable energies in Europe,” where the network-accessibleserver system identifies the following attributes: “Europe,” (e.g.,attribute 1 342) “policy,” (e.g., attribute 352) and “renewable energy,”(e.g., attribute 362). Looking at attribute 1 342 (e.g., “Europe”), eachexpert attribute may be inspected to determine a similarity of theexpert attribute to attribute 1 342.

Furthering the above example, each attribute (e.g., 342, 352, 362) maybe compared with expert attributes to determining a similarity to theattribute. Looking at attribute 1 342 (e.g., “Europe”), this may becompared with expert attributes 344, 346, 348 correlated with threedifferent experts. For example, a first attribute of a first expert 344may be “Italy,” a first attribute of a second expert 346 may be“Germany,” and a first attribute of a third expert 348 may be“Australia.”

As can be seen in FIG. 3, a first attribute of a first expert 344 and afirst attribute of a second expert 346 are within a threshold similarity350. Because the attribute is “Europe,” all European countries may beincluded and similar to the attribute within a threshold level. Forexample, Italy (expert 1 attribute 1 344) is a European country and issimilar to the attribute of Europe. Accordingly, Australia (Expert 3attribute 1 348) is not a European country and is not similar within thethreshold level 350.

In some embodiments, determined attributes of event(s) may be plotted onthe attribute graph 300. A proximity on the attribute graph between afirst query attribute and a first event attribute may indicate asimilarity between the first query attribute and the first expertattribute.

FIG. 4 illustrates a flow process 400 for selectively distributing aquery and an event, consistent with various embodiments. Once thenetwork-accessible server system receives a query (e.g., a questionand/or a project proposal) from a client (block 402), thenetwork-accessible server system can use keyword analysis and/or naturallanguage processing to analyze the query (block 404). Thenetwork-accessible server system can match the query with an expert byquantifying a similarity or closeness between the attributes of thequery and the identified specialties of the expert (block 406).

Similarity can be measured via keywords associated with a client profileassociated with a client that transmitted the query, keywords identifiedthrough parsing query descriptions (e.g., project and/or questiondescriptions), keywords associated with a profile of an expert, previousprojects and/or responses executed by the expert, etc. These keywordsmay be identified through a primary and secondary keyword library basedon regional and subject matter expertise. An individual client and theirproject are analyzed to identify a closest match (e.g., via an attributegraph). An expert may be identified as having a greatest closeness isselected based on a set of common attributes.

Potential attributes can be identified based on a keyword percentagecalculated by analyzing a ratio between a number of keywords identifiedin an expert profile and a number of keywords in a project descriptionand in a client profile. Keywords may be parsed from the projectdescription and then tagged as project keywords in order todifferentiate from profile keywords. The project keywords can be weigheddifferently than the profile keywords. Differential weighting forproject keywords can result in a preference for experts having keywordsidentified in previous project(s) over experts having keywordsidentified in a profile. For example, a weighting of 0.80 for projectkeywords and a weighting of 0.20 for profile keywords can be used. Inanother example, a weighting of 0.70 for project keywords and aweighting of 0.30 for profile keywords can be used.

The query may be assigned to the first expert based on the attributes ofthe first expert matching the query attributes (block 408). In someembodiments, a relevant event (e.g., blog post, social media post, newsorganization article, etc.) that is relevant to the query may beidentified and transmitted to the first expert.

The network-accessible server system may mine (or “inspect”)network-accessible sources to identify a first event (block 410). Thenetwork-accessible server system may mine servers, webpages, blogs,etc., to identify various events (e.g., news posts, social media posts,articles, publications of academic studies, etc.).

The network-accessible server system may determine keywords (or “eventattributes”) of the first event (block 412). In some embodiments,natural language processing may be applied to a description associatedwith the first event by parsing the first event to build a first eventparse tree using a probabilistic context-free grammar and employinglexical semantics to derive a meaning of the first event. In otherwords, a parse tree for the event may be utilized to identify keywordsor attributes of the first event. For example, a first event indicatinga natural disaster in a country may include event attributes relating tothe type of natural disaster, the location of the event, and the impactof the event. In an embodiment, the network-accessible server system maycompare the first event parse tree with a repository of known attributekeywords to determine event attributes of the first event.

The network-accessible server system may transmit the first event to thefirst expert with the query based on determining that the first eventattributes match the query attributes (block 414). If the first event(e.g., a report of a new law passed in Country A) is similar to thequery (e.g., a question relating to new laws passed in Country A), thefirst event may be sent to the expert along with the query for the firstexpert (e.g., an expert on legislation in Country A. Upon receipt of thequery and the first event, the expert may provide an expert opinion onboth the query and the first event along with any impact the first eventmay have on the query. For example, the first expert may illustrate whatthe new law will impact in Country A.

Upon receipt of the response to the query and an opinion of the firstevent by the first expert, the network-accessible server system mayforward the response and opinion to the client device (block 416).

In some embodiments, an event report may be generated that summarizes anevent and opinions received relating to the event. The event report mayinclude an event (e.g., article of a new law passing in a Country) or adescription of the event (e.g., “New Law Passes in Country”). The eventreport may also include an opinion provided by one or more experts. Forexample, with an event of a new law passing in the country, multipleexperts (e.g., 5 experts) with a relevant expertise may provide anoverview of the law and a projected impact of the law on the Country,the region, and/or the world.

The event report may be forwarded to a client device associated with arelevant client. A relevant client may include a client that transmitteda query with attributes similar to that of the attributes of the firstevent. For example, if a client device transmits a query relating to theimpact of new renewable energy laws in Europe, and if an event report isgenerated for an event relating to a new renewable energy regulation inEurope, the network-accessible server system may forward the eventreport to the client. In some embodiments, all client profiles may beinspected to determine whether any client profiles include attributesthat match an attribute of the event summarized in an event report,where these relevant client profiles or devices associated with theclient profiles may be forwarded the event report.

FIG. 5 illustrates a flow process 500 for selectively distributing aprompt to provide an opinion on a first event, consistent with variousembodiments. Data may be mined from various network-connected sources(e.g., news websites, social media, etc.) to identify an event (block502). Data may be mined from open source data sources via a network(e.g., the internet).

The network-accessible server system may determine attributes of theevent (block 504). In some embodiments, the network-accessible serversystem may determine attributes for a plurality of events mined fromvarious sources. The network-accessible server system may parse text ofeach event to determine features of the event using a suitable textrecognition technique.

In an embodiment, the network-accessible server system may inspect minedinformation relating to an expert or information relating to a client topredict information relating to the expert and/or client. For example,if mined information relating to a client indicates that the client isresearching a specific topic by accessing specific webpages, thenetwork-accessible server system may preemptively generate a query forthe client and identify relevant experts based on the attributes of thequery. The network-accessible server system may identify tendencies ortopics of interest (e.g., sports, politics, etc.) of the client and/orthe expert based on mined information relating to that client and/orexpert (e.g., internet browsing history, social media posts,communication on a forum, etc.)

In some embodiments, an event relevancy score of the first event may bedetermined to identify a relevancy of the first event. In other words,an event relevancy score may indicate the impact and relevancy the firstevent has on individuals, such as a client. The event relevancy scoremay be determined by inspecting the event attributes of the first eventand a number of instances of the event attributes. Various factors maybe weighed in determining a relevancy score, such as number of instancesof the event, the type of event, the impact the event has on the client,etc. In an embodiment, these factors may be weighted on a point-scalethat indicates a relevancy of the first event.

In some embodiments, the event relevancy score may be compared against athreshold relevancy level to indicate that the event is a major event. Amajor event may indicate an event that has an impact on the client. Forexample, an event of a natural disaster that impacts a geographic regionsimilar to a region identified in an attribute of a query may be a majorevent that has impact on the client that transmitted the query. Based ondetermining that an event relevancy score exceeds a threshold, a promptto the first expert may include a request to provide an opinion on thefirst event. For example, an expert can provide an opinion on the eventor provide a prediction on how the event will impact the client.

Distinguishing between events to determine a major event may notnecessarily be binary (i.e. “typical” vice “major”). Different clientsare associated with different criteria or thresholds for what qualifiesas a “major event.” A spectrum upon which to gauge the urgency of eventsis used to determine whether to label an event as a “major event” forparticular clients.

By using mined datasets, major events can be determined by, for example,identifying a global activity spike and/or identifying a regionalactivity spike. For example, if a breaking news item correlates with acertain threshold of social media sharing this may indicate asignificant event. Quickly alerting (via mobile update or email) clientsand experts associated with the event topic and then seeing if a spikein activity occurs regarding that event through user activity on theonline platform enables the system to determine whether to label theevent as a “major event.” If a spike is detected in a topic or regionfrom a niche group of clients, an alert (e.g., a push notification) canbe generated for other clients (e.g., clients more remotely associatedwith the topic) to the “hot” activity to make them aware of anopportunity they may not have otherwise seen. These spikes can bevalidated by open and/or external sources. Automating the processesallows responses to occur as close to real time as possible.

In some embodiments, a plurality of events are identified and each eventis inspected to determine attributes for that event. For example, thenetwork-accessible server system may identify multiple reports/postsrelating to a new law being passed in a country. Based on the number ofinstances of an event identified (e.g., multiple reports on a new lawbeing passed), that event may be considered to be a major event. In anembodiment, if the number of instances of the event passed apredetermined number or threshold, that event may be deemed a majorevent. A push notification may be transmitted to a client deviceindicating the major event based on matching attributes of the majorevent with the query attributes. For example, if a query transmitted bya client device includes a request for information about new laws in acountry, a major event of a new law passed in that country may be sentto the client device via a push notification.

The network-accessible server system may identify a first expert basedon determining that the event attributes match expert attributes with athreshold similarity (block 506). In some embodiments, expert attributesmay be determined based on receipt of an input from an expert deviceproviding information indicating the expertise or specialty of theexpert. The expert may provide an expert profile to thenetwork-accessible server system that includes the expert attributes ofthe expert.

In some embodiments, the network-accessible server system may minenetwork-accessible sources to identify the specialties and expertattributes of the expert. Examples of sources of expertise of the expertcan include authored articles/papers, social media pages, degreesreceived, prior work experience, etc. For example, at article authoredby an expert relating to renewable energy technologies may be mined andinspected discover that the expert has an expertise in renewable energytechnology.

An expert may include a workload that indicates the availability of theexpert. For example, a schedule of an expert may indicate that 90% ofthe expert's schedule is scheduled for the expert to respond to queriesby various clients. The network-accessible server system may inspect aschedule or other listing of the expert's workload to identify anavailability of the expert. In some embodiments the distribution of aquery to an expert may be based on the availability of the expert. As anexample, if a first expert and a second expert both have attributes thatmatch the query attributes and the first expert has a greateravailability than a second expert, the network-accessible server systemmay assign the query to the first expert based on the availability ofthe first expert.

In some embodiments, the network-accessible server system may identifyan average response time for an expert that indicates the average timefor the expert to respond to a query. The time to respond may bemeasured from assigning the query to the expert or generating a promptto the expert to answer the query until receipt of the response. Uponcompletion of a response to a query, the network-accessible serversystem may update the average response time of the expert to include therecently-received response from the expert. In an embodiment, ifmultiple experts have attributes that match the query attributes with asimilarity that exceeds the threshold, the expert with a faster averageresponse time may be assigned to the query.

The network-accessible server system may generate a prompt for the firstexpert based on the expert attributes matching the event attributes witha threshold similarity (block 508). Questions to experts can be deployedvia, for example, a prompt with a text field, a tailored survey, etc. Atext field response can be provided where the first expert can describethe impact of the event based on their regional and/or subject matterexpertise. The collection of these responses can be used to summarizeimpact across regions and subjects. In an embodiment, a tailored surveyhaving an ordinal scale of significance related to a topic of an eventcan be generated for the first expert. Expert data from the tailoredsurvey can be compiled and summarized using statistical analyses toinform clients of expert perceptions on the first event. A third orhybrid option could also be available including a mix of ordinal scalesand free text responses. Various data products can be produced fromthese responses. The products can be used to provide general outlooks ordive into a niche industry, area, or geography given the quantity andquality of data available regarding expert responses.

In some embodiments, the prompt to the first expert may include arequest to schedule a time to call or meet with a client associated withan event and/or a query. In another embodiment, the prompt may include arequest to provide a detailed report on a query and/or event.

Processing System

FIG. 6 is a block diagram illustrating an example of a processing system600 in which at least some operations described herein can beimplemented. For example, some components of the processing system 600may be hosted on a network-accessible server system (e.g.,network-accessible server system 106 of FIG. 1).

The processing system 600 may include one or more central processingunits (“processors”) 602, main memory 606, non-volatile memory 610,network adapter 612 (e.g., network interface), video display 618,input/output devices 620, control device 622 (e.g., keyboard andpointing devices), drive unit 624 including a storage medium 626, andsignal generation device 630 that are communicatively connected to a bus616. The bus 616 is illustrated as an abstraction that represents one ormore physical buses and/or point-to-point connections that are connectedby appropriate bridges, adapters, or controllers. The bus 616,therefore, can include a system bus, a Peripheral Component Interconnect(PCI) bus or PCI-Express bus, a HyperTransport or industry standardarchitecture (ISA) bus, a small computer system interface (SCSI) bus, auniversal serial bus (USB), IIC (I2C) bus, or an Institute of Electricaland Electronics Engineers (IEEE) standard 1394 bus (also referred to as“Firewire”).

The processing system 600 may share a similar computer processorarchitecture as that of a desktop computer, tablet computer, personaldigital assistant (PDA), mobile phone, game console, music player,wearable field device (e.g., a watch or fitness tracker),network-connected (“smart”) device (e.g., a television or home assistantdevice), virtual/augmented reality systems (e.g., a head-mounteddisplay), or another electronic device capable of executing a set ofinstructions (sequential or otherwise) that specify action(s) to betaken by the processing system 600.

While the main memory 606, non-volatile memory 610, and storage medium626 (also called a “machine-readable medium”) are shown to be a singlemedium, the term “machine-readable medium” and “storage medium” shouldbe taken to include a single medium or multiple media (e.g., acentralized/distributed database and/or associated caches and servers)that store one or more sets of instructions 628. The term“machine-readable medium” and “storage medium” shall also be taken toinclude any medium that is capable of storing, encoding, or carrying aset of instructions for execution by the processing system 600.

In general, the routines executed to implement the embodiments of thedisclosure may be implemented as part of an operating system or aspecific application, component, program, object, module, or sequence ofinstructions (collectively referred to as “computer programs”). Thecomputer programs typically comprise one or more instructions (e.g.,instructions 604, 608, 628) set at various times in various memory andstorage devices in a computing device. When read and executed by the oneor more processors 602, the instruction(s) cause the processing system600 to perform operations to execute elements involving the variousaspects of the disclosure.

Moreover, while embodiments have been described in the context of fullyfunctioning computing devices, those skilled in the art will appreciatethat the various embodiments are capable of being distributed as aprogram product in a variety of forms. The disclosure applies regardlessof the particular type of machine or computer-readable media used toactually effect the distribution.

Further examples of machine-readable storage media, machine-readablemedia, or computer-readable media include recordable-type media such asvolatile and non-volatile memory devices 610, floppy and other removabledisks, hard disk drives, optical disks (e.g., Compact Disk Read-OnlyMemory (CD-ROMS), Digital Versatile Disks (DVDs)), and transmission-typemedia such as digital and analog communication links.

The network adapter 612 enables the processing system 600 to mediatedata in a network 614 with an entity that is external to the processingsystem 600 through any communication protocol supported by theprocessing system 600 and the external entity. The network adapter 612can include a network adaptor card, a wireless network interface card, arouter, an access point, a wireless router, a switch, a multilayerswitch, a protocol converter, a gateway, a bridge, bridge router, a hub,a digital media receiver, and/or a repeater.

The network adapter 612 may include a firewall that governs and/ormanages permission to access/proxy data in a computer network and tracksvarying levels of trust between different machines and/or applications.The firewall can be any number of modules having any combination ofhardware and/or software components able to enforce a predetermined setof access rights between a particular set of machines and applications,machines and machines, and/or applications and applications (e.g., toregulate the flow of traffic and resource sharing between theseentities). The firewall may additionally manage and/or have access to anaccess control list that details permissions including the access andoperation rights of an object by an individual, a machine, and/or anapplication, and the circumstances under which the permission rightsstand.

The techniques introduced here can be implemented by programmablecircuitry (e.g., one or more microprocessors), software and/or firmware,special-purpose hardwired (i.e., non-programmable) circuitry, or acombination of such forms. Special-purpose circuitry can be in the formof one or more application-specific integrated circuits (ASICs),programmable logic devices (PLDs), field-programmable gate arrays(FPGAs), etc.

Remarks

The foregoing description of various embodiments of the claimed subjectmatter has been provided for the purposes of illustration anddescription. It is not intended to be exhaustive or to limit the claimedsubject matter to the precise forms disclosed. Many modifications andvariations will be apparent to one skilled in the art. Embodiments werechosen and described in order to best describe the principles of theinvention and its practical applications, thereby enabling those skilledin the relevant art to understand the claimed subject matter, thevarious embodiments, and the various modifications that are suited tothe particular uses contemplated.

Although the Detailed Description describes certain embodiments and thebest mode contemplated, the technology can be practiced in many ways nomatter how detailed the Detailed Description appears. Embodiments mayvary considerably in their implementation details, while still beingencompassed by the specification. Particular terminology used whendescribing certain features or aspects of various embodiments should notbe taken to imply that the terminology is being redefined herein to berestricted to any specific characteristics, features, or aspects of thetechnology with which that terminology is associated. In general, theterms used in the following claims should not be construed to limit thetechnology to the specific embodiments disclosed in the specification,unless those terms are explicitly defined herein. Accordingly, theactual scope of the technology encompasses not only the disclosedembodiments, but also all equivalent ways of practicing or implementingthe embodiments.

The language used in the specification has been principally selected forreadability and instructional purposes. It may not have been selected todelineate or circumscribe the subject matter. It is therefore intendedthat the scope of the technology be limited not by this DetailedDescription, but rather by any claims that issue on an application basedhereon. Accordingly, the disclosure of various embodiments is intendedto be illustrative, but not limiting, of the scope of the technology asset forth in the following claims.

What is claimed is:
 1. A method performed by a network-accessible serversystem to selectively distribute a query, the method comprising:receiving a query representing a request for information; parsing thequery to discover text of the query; determining, by a processor, queryattributes by inspecting the text of the query, wherein the queryattributes identify a meaning of the query; comparing the queryattributes with a plurality of attributes associated with a pool ofexperts; determining, by the processor, that attributes of a firstexpert match the query attributes with a similarity that exceeds athreshold similarity range; forwarding the query to a first expertdevice associated with the first expert for the first expert to respondto the query based on determining that the attributes of the firstexpert match the query attributes with the similarity that exceeds thethreshold similarity range; receiving a response to the query from thefirst expert device; determining a response accuracy score of theresponse by analyzing characteristics of the response and a similaritybetween the response and the query attributes; and forwarding theresponse to a client device associated with a client based ondetermining that the response accuracy score exceeds a thresholdaccuracy score.
 2. The method of claim 1, wherein said determining queryattributes further includes applying natural language processing to thequery by building a parse tree using a probabilistic context-freegrammar and employing lexical semantics to derive the meaning of thequery.
 3. The method of claim 1, further comprising: receiving a clientrating of the response to the query from the client device associatedwith the client; and updating an expert rating associated with the firstexpert based on the received client rating of the response, wherein theexpert rating of the first expert indicates a summation of all clientratings received relating to the first expert.
 4. The method of claim 1,further comprising: receiving a calendar entry from a client device;parsing the calendar entry to build a second parse tree to discover textof the calendar entry; determining attributes of the calendar entry bymatching the discovered text of the calendar entry with the queryattributes; and updating the query attributes to include the attributesof the calendar entry.
 5. The method of claim 1, further comprising:mining a third-party server to identify a first event; applying naturallanguage processing to a description associated with the first event byparsing the first event to build a first event parse tree; and comparingthe first event parse tree with a repository of known attribute keywordsto determine attributes of the first event.
 6. The method of claim 5,further comprising: determining an event relevancy score of the firstevent by inspecting the attributes of the first event, wherein the eventrelevancy score indicates a relevance of the first event to a client;determining that the event relevancy score of the first event exceeds athreshold relevancy range to indicate that the first event is a majorevent that is relevant to the client; determining, by the processor,that attributes of a first expert and attributes of a second expertmatch the attributes of the first event with a similarity that exceedsthe threshold similarity range; forwarding a prompt to the first expertand a second expert that includes the first event and includes a requestfor the first expert and the second expert to provide an opinion on thefirst event; receiving the opinion on the first event from the firstexpert and the second expert; generating an event report that includesthe first event and the opinions received from the first expert and thesecond expert; and forwarding the event report to a client deviceassociated with the client based on determining that any query attributematches the attributes of the first event.
 8. The method of claim 5,further comprising: updating a client profile to include the queryattributes of the query based on determining that a client deviceassociated with the client profile transmitted the query; determining anevent relevancy score of the first event by comparing the eventattributes of the first event and the client profile, wherein the eventrelevancy score indicates a relevance of the first event to the client;determining that the event relevancy score of the first event exceeds athreshold relevancy range to indicate that the first event is a majorevent that is relevant to the client; and transmitting a notificationthat includes the first event to the client device associated with theclient based on determining that the event relevancy score exceeds thethreshold relevancy range.
 8. The method of claim 1, further comprising:mining a third-party server to identify information relating to thefirst expert; determining specialty characteristics of the first expertby parsing the identified information relating to the first expert,wherein specialty characteristics indicate a field of specialty of thefirst expert; comparing the specialty characteristics of the firstexpert with keywords included in a repository of keywords that areassociated with attributes of the pool of experts; and generating theattributes of the first expert by matching the specialty characteristicsof the first expert with any of the plurality of keywords with asimilarity that exceeds a threshold expert attribute similarity range.9. The method of claim 1, further comprising: generating an attributegraph that includes a plotting of the query attributes and the pluralityof attributes associated with the pool of experts, wherein a proximityon the attribute graph between a first query attribute and a firstexpert attribute indicates a similarity between the first queryattribute and the first expert attribute.
 10. The method of claim 1,further comprising: determining that the attributes of the first expertand attributes of a second expert match the query attributes above thethreshold similarity range; determining an availability of a firstexpert schedule associated with the first expert by comparing anavailable portion of the first expert schedule with a scheduled portionof the first expert schedule; and determining an availability of asecond expert schedule associated with the second expert, wherein saidassigning the query to the first expert is based on determining that theavailability of the first expert schedule is greater than theavailability of the second expert schedule.
 11. The method of claim 1,wherein the query attributes include a query geographic attributeidentifying a relevant geographic region and a query topic attributeindicating a relevant topic of the query, and wherein said comparing thequery attributes with the plurality of attributes associated with thepool of experts further includes determining that the query geographicattribute matches a geographic region included in the attributesassociated with the first expert and that the query topic attributematches a cited topic included in the attributes associated with thefirst expert.
 12. The method of claim 1, further comprising: determiningthat the attributes of the first expert and attributes of a third expertmatch the query attributes above the threshold similarity range; anddetermining a query response rate of the first expert and the thirdexpert, wherein the query response rate of the first expert indicates anaverage response time to respond to a plurality of queries by the firstexpert, wherein said assigning the query to the first expert is based onthe query response rate of the first expert being less than the queryresponse rate of the third expert.
 13. The method of claim 1, whereinsaid determining the response accuracy score of the response furtherincludes: comparing spelling and grammar characteristics of the responsewith a dictionary library file; determining a similarity between thetext of the response and the query text; and comparing a response timeto complete the response with an average response time to responds to aquery.
 14. A network-accessible server system, comprising: a memory thatincludes instructions to selectively distribute a query to a firstexpert, wherein the instructions, when executed by a processor, causethe processor to: receive a query indicating a request for information;parse the query using natural language processing to generate a parsetree to discover text of the query; determine query attributes bycomparing the discovered text of the query with a plurality of keywordsrepresenting attributes that indicate a meaning of the query; mine athird-party server to identify a first event; apply natural languageprocessing to a description associated with the first event by parsingthe first event to build a first event parse tree to discover keywordsassociated with the first event; compare the discovered keywordsassociated with the first event with a repository of known attributekeywords to determine attributes of the first event; determine that theattributes of the first event match the query attributes with asimilarity that exceeds a threshold similarity range; compare the queryattributes with attributes associated with a pool of experts; determinethat a similarity between the query attributes and the attributesassociated with the first expert exceed the threshold similarity range;and distribute a prompt to the first expert indicating a request torespond to the query and the first event based on determining that thesimilarity between the query attributes and the attributes associatedwith the first expert exceeds the threshold similarity range, whereinthe prompt includes the query and the first event.
 15. Thenetwork-accessible server system of claim 14, further causing theprocessor to: mine a third-party server to identify information relatingto the first expert; and determine a geographic location characteristicand specialty field characteristics indicating fields of specialty ofthe first expert by matching the identified information relating to thefirst expert with a plurality of keywords representing geographiclocation characteristics and specialty field characteristics of a poolof experts, wherein the geographic location characteristic of the firstexpert and the specialty field characteristics of the first expert areincluded in the attributes associated with the first expert.
 16. Thenetwork-accessible server system of claim 14, further causing theprocessor to: mine a third-party server to identify information relatingto a client; parse the identified information relating to the clientusing natural language processing to discover text of the identifiedinformation relating to the client; compare the discovered text of theidentified information relating to the client with the query attributes;generate attributes of the identified information by matching theidentified information relating to the client to the query attributeswith a similarity that exceeds the threshold similarity range; andupdate the query attributes to include the attributes of the identifiedinformation.
 17. The network-accessible server system of claim 14,further causing the processor to: generate an attribute graph thatincludes a plotting of the query attributes and the plurality ofattributes associated with the pool of experts, wherein a proximity onthe attribute graph between a first query attribute and a first expertattribute indicates a similarity between the first query attribute andthe first expert attribute, and wherein said determine that theattributes of the first event match the query attributes with thesimilarity that exceeds the threshold similarity range includesdetermining that the proximity of the first query attribute and thefirst expert attribute is within a threshold proximity range.
 18. Amethod performed by a network-accessible server system, the methodcomprising: receiving a query representing a request for informationfrom an expert; parsing the query to discover text of the query;determining, by a processor, query attributes by inspecting text of thequery, where the query attributes identify a meaning of the query;generating an attribute graph that includes a plotting of the queryattributes and a plurality of attributes associated with a pool ofexperts; determining that attributes associated with a first expertmatch the query attributes by determining that each attribute of thefirst expert is within a threshold proximity on the attribute graph toany of the query attributes; assigning the query to the first expert torespond to the query based on determining that each attribute of thefirst expert is within the threshold proximity on the attribute graph toany of the query attributes; and forwarding a response to the queryreceived from an expert device associated with the first expert to aclient device associated with a client.
 19. The method of claim 18,further comprising: mining a third-party server to identify a firstevent; applying natural language processing to a description associatedwith the first event by parsing the first event to build a first eventparse tree; comparing the first event parse tree with a repository ofknown attribute keywords to determine attributes of the first event; andupdating the attribute graph to include the attributes of the firstevent, wherein a similarity between a first attribute of the first eventand a first query attribute is determined by identifying a distancebetween the first attribute of the first event and a first queryattribute plotted on the attribute graph.
 20. The method of claim 18,further comprising: plotting a geographic location attribute of thefirst expert on the attribute graph; comparing a proximity on theattribute graph between the geographic location attribute of the firstexpert and a geographic location attribute included in the queryattributes; and determining that the geographic location attribute ofthe first expert and the geographic location attribute included in thequery attribute are within the threshold proximity on the attributegraph.